/* symbol_base.h */

#ifndef DODO_SYMBOL_BASE_H
#define DODO_SYMBOL_BASE_H

#include <dodo_plot/kernel/plotfwd.h>
#include <dodo_plot/kernel/basic_elements.h>

namespace dodo_plot
{
class Symbol_Base
{
public:
	virtual double height() const {return 0;}
	virtual double width() const {return 0;}
	virtual Position local_pos() const {return Position(0, 0, 0, 0);}
	virtual void draw(const Plotter& plotter) const = 0;
	
	virtual void set_line_color(const Color& color) {line_color_ = color;}
	virtual void set_fill_color(const Color& color) {fill_color_ = color;}
	virtual void set_line_width(double width) {line_width_ = width;}
	virtual void set_size(double size) {size_ = size;}
protected:
	Symbol_Base(double size, double line_width, const Color& line_color, const Color& fill_color)
		: size_(size), line_width_(line_width), 
		line_color_(line_color), fill_color_(fill_color)
	{ }
	~Symbol_Base() {}
protected:
	double size_;
	double line_width_;
	Color line_color_;
	Color fill_color_;
};

}


#endif //DODO_SYMBOL_BASE_H

